var sugerencia = {
	area : null,
	asunto : null,
	sugerencia : null,
	foto : '',
	fecha : null,
	lat : null,
	lng : null,
	sincronizado : 0
};

function onSugerenciasAdd() {
	console.log("Estamos en añadir detalles");
	
	// recuperamos las selecciones anteriores, por si volvemos
	if(sugerencia.area != null) {
		var temaSelect = $("#tema");
		temaSelect[0].selectedIndex = parseInt(sugerencia.area);
		temaSelect.selectmenu("refresh");
	}
	if(sugerencia.asunto != null) $("#asunto").val(sugerencia.asunto);
	if(sugerencia.sugerencia != null) $("#sugerencia").val(sugerencia.sugerencia);


	// guardamos al cambiar
	$("#tema").change(function() {
		sugerencia.area = $(this).val();
	});
	
	$("#asunto").change(function() {
		sugerencia.asunto = $(this).val();
	});
	
	$("#sugerencia").change(function() {
		sugerencia.sugerencia = $(this).val();
	});

	// eventos de los botones
	$('[data-id="descartar"]').click(discardSugerencia);
	$('[data-id="guardar"]').click(saveSugerencia);
}

function onLocalizacionesAdd() {
	console.log("Estamos en añadir localización");
	
	// recuperamos la posicion anterior, por si volvemos
	if(sugerencia.lat != null) {
		showLocation();
	} else { // buscamos la posición
		navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError);
	}
	
	// eventos de los botones
	$("#reLocate").click(function() {
		navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError);
	});
	
	$("#clearPosition").click(function() {
		clearLocation();
	});
	
	$('[data-id="descartar"]').click(discardSugerencia);
	$('[data-id="guardar"]').click(saveSugerencia);
}

function geolocationSuccess(position) {
	sugerencia.lat = position.coords.latitude;
	sugerencia.lng = position.coords.longitude;
	
	console.log("Estamos en: Lat: " + sugerencia.lat + "; Lon: " + sugerencia.lng);
	showLocation();
}

function geolocationError(error) {
	// console.log('Error al localizar: ' + message);
	alert('Error al localizar.\n' + "codigo: " + error.code + "\n" + "mensaje: " + error.message);
	clearLocation();
}

function showLocation(){
	$("#latitud").html("Latitud: <strong>" + sugerencia.lat + "</strong>");
	$("#longitud").html("Longitud: <strong>" + sugerencia.lng + "</strong>");
}

function clearLocation() {
	sugerencia.lat = null;
	sugerencia.lng = null;
	
	$("#latitud").html("Latitud: <strong>N/A</strong>");
	$("#longitud").html("Longitud: <strong>N/A</strong>");
}

function onFotografiasAdd() {
	console.log("Estamos en añadir foto");

	// recuperamos la foto, por si volvemos
	if(sugerencia.foto != '') {
		$("#fotografia").attr("src", sugerencia.foto);
	} else {
		$("#fotografia").attr("src", "images/no_photo.png");
	}

	// magia para acceder a la camara
	var pictureSource = navigator.camera.PictureSourceType;
	var destinationType = navigator.camera.DestinationType;

	// eventos de los botones
	$("#fotografia").click(function() {
		navigator.camera.getPicture(onPhotoSuccess, onPhotoFail, {
			quality : 50,
			destinationType : destinationType.FILE_URI,
			sourceType : pictureSource
		});
	});
	
	$("#delete_foto").click(function() {
		$("#fotografia").attr("src", "images/no_photo.png");
		sugerencia.foto = '';
	});

	$('[data-id="descartar"]').click(discardSugerencia);
	$('[data-id="guardar"]').click(saveSugerencia);
}

function onPhotoSuccess(imageUri) {
	console.log("La foto es: " + imageUri);
	
	$("#fotografia").attr("src", imageUri);
	
	sugerencia.foto = imageUri;
}

function onPhotoFail(message) {
	// console.log('Error al tomar la foto: ' + message);
	alert('Error al tomar la foto: ' + message);
}

// callback para guardar el JSON creado y salir
function saveSugerencia() {
	sugerencia.fecha = new Date();
	console.log("Vamos a guardar esto: " + JSON.stringify(sugerencia));
	
	id = syncSugerencia();
	console.log("En esta posición: " + id);
	
	emptyData();
	//TODO: no permitir sugerencias vacías
	//TODO: salir a la página de resumen
	// $.mobile.changePage("index.html");
	
	var valor = localStorage.getItem("0");
	var array_config = JSON.parse(valor);	
	valor.sug_activa = id;
	localStorage.setItem("0", JSON.stringify(valor));
	
	$.mobile.changePage("sugerencias-view.html");
}

// callback para descartar y borrar
function discardSugerencia() {
	console.log("Mutis por el foro");
	emptyData();
	$.mobile.changePage("index.html");
}

function syncSugerencia() {
	//TODO: añadir sincronización
	var newKey = localStorage.length + 1;
	localStorage.setItem(newKey, JSON.stringify(sugerencia));
	return newKey;
}

// si salimos o guardamos, borramos el JSON
function emptyData() {
	sugerencia = {
		area : null,
		asunto : null,
		sugerencia : null,
		foto : '',
		fecha : null,
		lat : null,
		lng : null,
		sincronizado : 0
	};
	//TODO: ¿que hacemos con la foto? Eliminar al salir o al rehacer foto -- Si usamos Base64 no hay que hacer nada
}
